Postfixの設定を
1. main.cfの編集# vi /etc/postfix/main.cf |
以下の項目を編集していきます。
Postfixをメールリレーサーバとして動作させるために以下の設定を行います。
/etc/postfix/main.cfの以下の項目を設定します。
/etc/postfix/transport を設定します。
# vi /etc/postfix/transport |
localhost : localhost.localdomain : mail.example.com : * smtp:[outmail.exsample.com]:10025 |
外部メールサーバへのメールリレー設定となります。 最初のアスタリスク(*)は宛先ドメインを全てマッチさせます。 smtp: は、SMTPによるメールリレーを指定しています。 [SMTPホスト名]は、メールリレー先サーバ名を指定しています(SMTPホスト名は[]で囲ってください)。 :10025 は SMTPの接続ポートを指定しています。
ホスト名を[ ]でくくると、Aレコードとして処理されます。IPアドレス、ホスト名を記述します。
ドメイン名を直接記述すると、MXレコードで解決されます。ドメイン名を指定できますが、ホスト名、IPアドレスは記述できません。
ファイルを保存したら、ハッシュ化が必要なため、以下のコマンドを実行します。
# postmap /etc/postfix/transport |
設定ファイルをチェックするには、
# postfix check |
main.cfを確認するには、postconf コマンドを実行します。
# postconf |
デフォルト値から変更されている項目のみ確認するには、-n オプションをつけて実行します。
# postconf -n |
【 メールボックス形式 】
受け取ったメールを保存する形式に MailBox(mbox) 形式と MailDir 形式がある。
MailBox 形式は古くから使われている形式で、この形式では1ユーザのメールデータは、全てひとつのファイルに保存される。ひとつのファイルに保存されるため、データの管理やバックアップが容易に行えるという利点がある。
デメリットとして、メールデータがひとつのファイルで管理されるため、データ容量の増加に伴い、性能劣化が発生する問題がある。またファイルが壊れたり、メールサーバが解釈できないデータが書き込まれた場合には、全てのメールの参照が不可能になるという問題もある。
セキュリティの面では、Maildir 形式の場合は各ユーザーのホームディレクトリにファイルが配置される為、アクセス権限を持つユーザーからしかアクセスされることはありませんが、MailBox 形式の場合は全てのユーザーが共有しているフォルダ配下にファイルが配置されてしまいます。
それに対して Maildir 形式は新しい形式で、同じ人宛のメールは1つのディレクトリへ、1通のメールを1つのファイルとして保管する形式です。
慣習的に MailBox 形式のファイルは下記のようなディレクトリに保存されます。
Maildir 形式の場合は、ユーザーそれぞれのホームディレクトリに保存されます。
Maildir 形式は、宛先毎にディレクトリを分けてメールを置きます。
MailBox 形式は、全部のメール(全員分)が1つのディレクトリに置かれます。
master.cfは、各プロセス毎の設定となり、-oオプションでmain.cfの設定を上書きします。
Submissionポート(587番ポート)とSMTP認証を設定するため、 /etc/postfix/master.cf を編集します。
# vi /etc/postfix/master.cf |
以下の項目を編集していきます。
Postfixを起動します。
# systemctl enable postfix systemctl start postfix |
Port 587が起動していることを確認します。
# ss -natup |grep master tcp LISTEN 0 100 *:25 *:* users:(("master",pid=12822,fd=13)) tcp LISTEN 0 100 *:587 *:* users:(("master",pid=12822,fd=17)) |
ユーザを追加した際、ユーザのホームディレクトリにメール用ディレクトリが自動で作成されるように設定します。
# mkdir -p /etc/skel/Maildir/{new,cur,tmp} # chmod -R 700 /etc/skel/Maildir/ |
SASLによる認証方法には、主にUNIXユーザー認証(PAM認証)とSASL側のデータベース(sasldb)による認証が用いられます。
● PAM認証の場合/etc/sysconfig/saslauthdを確認します。以下のようにMECH=pam(Ubuntuの場合はMECHANISMS="pam")であればPAM認証です。(PAM認証がデフォルトです)
CentOS の場合(/etc/sysconfig/saslauthd):# /etc/sysconfig/saslauthd |
# Directory in which to place saslauthd's listening socket, pid file, and so # on. This directory must already exist. SOCKETDIR=/run/saslauthd # Mechanism to use when checking passwords. Run "saslauthd -v" to get a list # of which mechanism your installation was compiled with the ablity to use. MECH=pam <--- PAM認証を指定 # MECH=shadow <--- shadow ファイルを使用 # Additional flags to pass to saslauthd on the command line. See saslauthd(8) # for the list of accepted flags. FLAGS= |
# vi /etc/sasl2/smtpd.conf |
pwcheck_method: saslauthd mech_list: plain login |
pwcheck_methodの設定
saslauthd ・・・ PAMやshadowを使用
auxprop ・・・ SASL独自のパスワードDBを使用
saslauthd での認証がうまくいくかどうかは、testsaslauthd コマンドで確認できる。
# testsaslauthd -u ユーザ名 -p パスワード 0: OK "Success." |
SASL独自データベースは管理に手間がかかりますが、パスワードの暗号化もサポートしているため安全性は高まります。
注意点としては利用者のメールソフトがSMTP認証の暗号化に対応している必要があります。
# vi /etc/sasl2/smtpd.conf |
pwcheck_method: auxprop mech_list: cram-md5 digest-md5 plain login |
SMTPでTLS/SSLを使うようにするため、 /etc/postfix/master.cf を編集します。
# vi /etc/postfix/master.cf |
以下の項目を編集していきます。
Submissionポート(587番ポート)とSMTP認証の設定はしておく。
# nano /etc/postfix/master.cf 頭の方に記載がある 【中身】 smtp inet n - n - - smtpd ↑必須 submission inet n - n - - smtpd ↑587ポートを使う場合 -o smtpd_tls_security_level=may ↑587の時これをencriptにすると、STARTTLSをしてから送れ、と言われてしまうので、どっちも許容のmayがよい -o smtpd_sasl_auth_enable=yes ↑SMTP認証を使う場合はyesにする -o smtpd_client_restrictions=permit_sasl_authenticated,reject ↑SMTP-AUTHを通ったものを許可する。rejectは細かく指定するとそこは蹴れる。# nano /etc/postfix/main.cf TLSは末尾に記載されているので、そこを編集 【中身】 ## TLS # Transport Layer Security # smtpd_use_tls = yes smtp_use_tls = yes #smtpd_tls_auth_only = yes ↑これを有効にするとTLSでないと言われるので、コメントアウトのままにしておく smtpd_tls_key_file = /usr/local/ssl/private/キーファイル.key smtpd_tls_CAfile = /usr/local/ssl/crt/SSL証明書ファイル.crt smtpd_tls_loglevel = 3 ↑これを1にすると、ログにTLSの事が記載されるらしい。 smtpd_tls_received_header = yes tls_random_source = dev:/dev/urandom smtpd_tls_security_level=may ↑25ポートからのSTARTTLSを使う場合は、master.cfでなく、main.cfに記載するとの事。 postfixを再起動して内容反映 # systemctl restart postfix オレンジ色の部分を記載すると、 相手がTLSを受け付けてくれる場合は、MTA間通信をSSL/TLSにて行える
Eximは、UNIXライクホスト用の「メール転送エージェント」(MTA:Mail Transfer Agent)です。
メールのルーティング方法に柔軟性があり、受信メールをチェックするための広範な機能を利用できます。
Sendmail互換性により、Sendmail代替ソフトウェアとしても利用できます。
www.it-shikaku.jp
[Top] | |
[講義目次] | |
[2.09:HTTPサーバーとプロキシサーバー] | |
[2.10:電子メールサービス] | |
[2.10.1 Postfixの設定と管理] | |
[2.10.2 Dovecotの設定と管理] | |
[2.11:ネットワーククライアントの管理] | |
[講義検索] | |
[リンク集] |